Not applicable.
Not applicable.
1. Field of the Invention
The present invention relates generally to docking of personal computer systems and particularly to a bus bridge that facilitates xe2x80x9chotxe2x80x9d docking. More particularly, the present invention relates to an enhanced expansion bus bridge for connecting a computer system to a docking station without requiring the computer system to shut down or enter sleep mode during the docking sequence.
2. Background of the Invention
Many portable computer systems are capable of connecting to a docking station, or an expansion base. The docking station is not actually a part of the portable computer system per se, but instead comprises a separate unit that accommodates the computer. The portable computer electrically connects to the docking station usually by way of an expansion bus, such as a Peripheral Component Interconnect (PCI) or other suitable bus. Because of inherent size and weight restrictions, portable computers tend to require design tradeoffs such as small keyboards and graphics displays, crude cursor control devices, and a limited number of mass storage devices. The docking station (or simply xe2x80x9cdockxe2x80x9d) usually couples to peripheral devices, such as a CD ROM drive, a standard size keyboard, and a large monitor and thus converts the portable computer into a desktop system. Accordingly, the computer user can access valuable features such as additional peripheral components including a large graphics display, a full-size mouse and keyboard, hard and floppy disk drives, CD ROM drives, Digital Video Disk (DVD) drives, and other peripheral components. An expansion base may also offer connections to a local area network (LAN), printer, and modem. Although intended primarily for desktop operation, the utilization of expansion bases has greatly enhanced the usability and comfort of laptop computer systems, handheld computers, and other portable systems, especially when the computer is used frequently in one location, such as in the home or office.
When the portable computer is docked, an expansion bus within the computer typically couples to an expansion bus in the docking station. The expansion bus permits communication (e.g., data transfers) between the computer and a peripheral device in the docking station. Because of the delicate nature of high performance expansion buses such as the PCI bus, care must be taken when designing a docking system and implementing the docking procedure to connect two PCI buses. One factor to consider is that a single expansion bus often can only support a limited number of components. Suddenly xe2x80x9cloadingxe2x80x9d an expansion bus with too many components may severely degrade performance or crash the bus. To facilitate docking in portable computer systems, bus xe2x80x9cbridgexe2x80x9d devices have been developed that couple the expansion bus within the computer to the expansion bus inside the docking station. Because the computer expansion bus and dock expansion bus are not directly connected to one another, neither expansion bus becomes overloaded due to the docking connection.
FIG. 1 illustrates a representative conventional computer system/docking station configuration. The computer 100 generally includes a CPU coupled to a bridge logic device via a CPU bus. The bridge logic device is sometimes referred to as a xe2x80x9cNorth bridgexe2x80x9d for no other reason than it often is depicted at the upper end of a computer system drawing. The North bridge also couples to a main memory array by a memory bus. The North bridge couples the CPU and memory to the peripheral devices in the system through a PCI bus 125 or other expansion bus (such as an EISA bus). Various components that implement the PCI protocol may reside on the computer""s PCI bus 125, such as a graphics controller.
If other secondary expansion buses are provided in the computer system, another bridge logic device typically is used to couple the PCI bus 125 to that expansion bus. This bridge logic is sometimes referred to as a xe2x80x9cSouth bridge,xe2x80x9d reflecting its location vis-a-vis the North bridge in a typical computer system drawing. In FIG. 1, the South bridge couples the computer PCI bus 125 to an ISA bus. Various ISA-compatible devices are shown coupled to the ISA bus.
The South bridge may also support an input/output (I/O) controller that interfaces to basic input/output devices (not shown) such as a keyboard, a mouse, a floppy disk drive, and various input switches such as a power switch and a suspend switch. The I/O controller typically couples to the South bridge via a standard bus, shown as an ISA bus in FIG. 1. A serial bus, which generally is a bus with only one data signal, may provide an additional connection between the I/O controller and South bridge. The I/O controller typically comprises an ISA bus interface (not specifically shown) and transmit and receive registers (not specifically shown) for exchanging data with the South bridge over the serial bus.
The I/O controller generally has the capability to handle power management functions such as reducing or terminating power to components such as the floppy drive (not shown), blocking the clock signals that drive components such as the bridge devices and CPU, and initiating sleep mode in the peripheral buses. The I/O controller further asserts System Management Interrupt (SMI) signals to various devices such as the CPU and North bridge to indicate special conditions pertaining to input/output activities such as sleep mode. The I/O controller typically incorporates a counter or a Real Time Clock (RTC) to track the activities of certain components such as the hard drive and the PCI bus 125, inducing a sleep mode or reduced power mode after a predetermined time of inactivity. The I/O controller may also place the computer system into a low-power mode, in which the power to all devices except the I/O controller itself shuts off completely.
The computer system also includes a bus bridge for coupling the expansion bus within the computer to an expansion bus housed in a docking station. A typical docking station 150 with a PCI bus 175 is pictured in FIG. 1 and coupled to the PCI bus 125 within the computer system. As shown, a PCI-to-PCI bus bridge device 130 couples the two PCI buses 125 and 175. An exemplary PCI-to-PCI bridge device is the 21554 PCI-to-PCI bridge manufactured by Intel Corporation.
The docking station 150 pictured in FIG. 1 also includes a South bridge logic (not shown specifically) for coupling components connected to the computer""s PCI bus 125 to other components contained within the docking station 150. Thus, as shown in FIG. 1, a South bridge logic device within the docking station couples the PCI bus 125 to various expansion buses including an ISA bus, a universal serial bus (USB), and an integrated drive electronics (IDE) bus. The docking station 150 also supports a local area network (LAN) connection such as Ethernet. In addition to the PCI signals that are provided between the computer 100 and the dock 150, various xe2x80x9csidebandxe2x80x9d signals within the docking station 150 must be connected to the computer system 100 during docking. These sideband signals typically connect to the I/O controller but may be connected to virtually any component within the computer. Examples of sideband signals include power and ground signals, interrupt signals, and I/O signals such as serial and parallel port signals, keyboard and mouse signals, and audio and video signals. Accordingly, the South Bridge logic in the docking station 150 may incorporate an interrupt controller to generate the interrupt signals, and the docking station 150 may include dedicated I/O controllers coupled to the I/O devices and that transmit the sideband signals.
A significant problem inherent in docking relates to electrical xe2x80x9ctransientsxe2x80x9d and voltage mismatches that can occur when the connectors on the computer 100 and docking station 150 are first mated. When the opposing connectors first meet, a slight but rapid xe2x80x9cbouncingxe2x80x9d action may occur between the electrical contacts on the connectors. The bouncing action repeatedly connects and then disconnects the contacts, causing the current to flow intermittently. When opposing contacts are engaged, electric current may flow through the connection. When the opposing contacts are separated, the electric current is stopped. Thus, bouncing connectors cause intermittent current flow. In addition to the bouncing problem, differences in reference voltage levels (i.e., ground levels) between the computer and docking station can produce current xe2x80x9cspikes,xe2x80x9d or large inrushes of current, when the connectors are mated. Current spikes are highly undesirable and can cause component damage and reduce battery life. Virtually all of the signals that connect the computer system to the docking station, including expansion bus signals and also sideband signals, are susceptible to electrical transients and voltage spikes during the docking procedure.
In order to avoid transient problems, early computer designs required shutting off the computer system before docking, a procedure known as xe2x80x9ccold docking.xe2x80x9d Although shutting off the computer effectively prevents the undesirable electrical problems described above, the user must power on the computer after docking and endure a lengthy and annoying reboot sequence before the computer can be used.
Recent computer systems have been capable of safely docking without completely powering down by implementing a variety of power modes, each of which may draw a different amount of electric power, depending on the state. Aside from the familiar xe2x80x9cnormalxe2x80x9d and xe2x80x9cpower offxe2x80x9d modes, in which the computer is running at full power or is turned off, other power modes include the low-power xe2x80x9csuspendxe2x80x9d and xe2x80x9csleepxe2x80x9d modes. These low-power modes generally allow the computer to operate at a reduced level of power, albeit with reduced functionality.
During suspend mode, certain hardware devices which tend to draw large amounts of power, such as the hard disk drive or display, may be powered off to save electricity. The computer often initiates suspend mode automatically when the computer has not detected action from the user for a predetermined period of time, such as keystrokes or mouse movements. Computer programs running during suspend mode typically run normally, however, and the computer wakes up the suspended devices as needed. For instance, the computer monitor may turn off or darken the if no user activity is detected for a predetermined period of time, in order to save power. If the user moves the mouse or presses a key on the keyboard, then the monitor turns back on. Similarly, the hard disk drive may spin down if no data has been read from or written to disk for a predetermined time. As soon as the user saves a file or opens a file or application program, the disk drive wakes up to handle the data transfer. Although the computer often requires a short delay to wake up suspended hardware components, the computer can save great deal of power by suspending certain devices when they are not undergoing heavy use.
During sleep mode, nearly every device in the computer system, including the CPU, powers down; typically only the random access memory (RAM), which stores the data and programs running on the computer, and the I/O controller remain powered. As a result, computer activity ceases until the user brings the computer out of sleep mode, typically by pressing the xe2x80x9cpower onxe2x80x9d button. Because the RAM remains powered on during sleep mode, the memory contents are preserved so that the computer returns to the same state that it was in when the sleep mode began. Sleep mode can begin automatically, usually after the computer detects no user activity for a long time, or can begin in response to a command from the user. Although sleep mode offers less functionality than the suspend mode, in fact rendering the computer temporarily unusable, the sleep mode also requires relatively little power and provides a high level of battery conservation that is especially desirable in portable systems.
Early implementations of the various power modes required the computer hardware itself to monitor user activity and determine the proper power state for each device in the computer system. More recently, the Advanced Configuration and Power Interface (ACPI) specification written by Intel, Microsoft, and Toshiba has introduced the concept of managing power functions using the computer operating system. Centralizing power management within software, in contrast with the original method of hardware-based power management, allows computer manufacturers to make simpler, less expensive hardware components that do not have to manage their own power states. Instead, these devices need only to respond to power management commands from the operating system. In addition, software-based power management permits the computer system implement highly complex power management procedures that may have been difficult, if not impossible, to realize using the more decentralized hardware-based approach of the past. Software-based power management also advantageously provides the user with some level power management control.
Taking advantage of the various power modes, more recent computer designs have incorporated a xe2x80x9cwarm dockingxe2x80x9d procedure in which the computer is placed in sleep mode during the docking sequence. Because entering sleep mode causes the expansion bus to power down, the computer can be connected to the docking station during sleep mode. In one implementation, the docking station includes a docking pin which makes contact with any computer that is placed into the dock. The docking pin connects electrically to the I/O controller within the computer, providing a sideband DOCKING signal, as illustrated in FIG. 1. Accordingly, when the user places the computer 100 into the dock 150, contact with the docking pin asserts a xe2x80x9cdockingxe2x80x9d interrupt to the processor, to notify the processor that the docking sequence is beginning. In response, the processor places the computer into sleep mode, effectively deactivating the expansion bus and sideband signals. The I/O controller may remain awake during sleep mode, however, to monitor the DOCKING signal. The docking station 150 includes a mechanical hook for securing the computer 100. After the computer enters sleep mode, the docking station 150 grabs the computer 100 via the mechanical hook and pulls the computer 100 into the dock 150. Because the expansion bus and sideband signals are powered down during sleep mode, no electrical transient problems occur during warm docking. The docking station 150 then transmits another interrupt signal via the docking pin to notify the processor that the docking procedure has completed, and the computer 100 responds by returning to full-power mode.
A major problem with warm docking is that it can require a significant amount of time to return to full-power mode in some systems. Most computers require a relatively long time to power up, initialize, and enumerate various components, for instance. In particular, hard disk drives must undergo a rather lengthy wakeup period that requires extensive re-calibration. Consequently, warm docking can be too time-consuming for some users.
More recently, xe2x80x9chot dockingxe2x80x9d procedures have been developed that permit docking while the computer system is fully powered. In one implementation, the computer system and docking station incorporate a special docking safe circuit 135 coupled to the expansion buses. Upon detecting that a docking sequence has been initiated, the docking safe circuit 135 drive the expansion bus 125 to a docking safe state. In the docking safe state, the ground conductors of the expansion bus 125 are referenced to a common ground potential, the bus 125 is placed in a xe2x80x9cquiet,xe2x80x9d or non-transitioning, state, all bidirectional terminals of the docking station bus 175 are set to an input state, and the signaling levels of the buses 125 and 175 have the same voltage potential. A major disadvantage to this hot docking procedure is that it requires providing the specialized docking safe circuitry 135 in the computer system. Due to the increasing demands by consumers to reduce the cost, size, and power consumption of computer systems, it is generally desirable to keep the number of components within computer systems to a minimum. The docking safe circuitry thus represents cost, size, and power burdens to the manufacturer.
For the foregoing reasons, a computer system capable of performing hot docking without the need for special docking safe circuitry would simplify and expedite the docking procedure without incurring the added costs of extraneous circuitry. Such an apparatus, if devised, should permit transient-free coupling of expansion bus signals as well as sideband signals between the computer and docking station during normal computer operation. Despite the apparent advantages that such a system would provide, to date, no such device has been developed that provides these features.
Accordingly, the present invention discloses a computer system capable of hot docking to an expansion base via an enhanced bus-to-bus bridge (or simply xe2x80x9cbus bridgexe2x80x9d) that couples an expansion bus within the computer to an expansion bus within the docking station. The computer system takes advantage of the ACPI power specification to place the bus bridge in various power modes during docking and undocking. While docking, undocking, or operating in an undocked mode, the computer system powers down the bus bridge, effectively decoupling the computer""s expansion bus from the docking station""s expansion bus. Once docked, however, the computer powers on the bus bridge via the ACPI protocol, allowing communication along the coupled expansion buses between the computer and docking station. Because hot docking is safely implemented within the bus bridge, the computer system does not require the extra docking safe circuitry required for hot docking in prior systems.
The enhanced expansion bus bridge is configured to receive the docking indicator signal which was routed to an I/O controller in prior systems. Because the enhanced expansion bus bridge is capable of receiving the docking signal, the expansion bus is capable of transmitting an ACPI power management event (PME) interrupt to the processor in response to receiving the docking signal. Because the docking signal is asserted to indicate that the docking sequence has completed, the PME interrupt effectively notifies the processor when to power on the expansion bus bridge to connect to the dock.
In addition, the computer system includes a bank of switches that receive sideband signals from the docking station. The bus bridge provides an indicator signal to control the state of the switches. The bus bridge asserts the indicator signal to open the switches when the bus bridge is powered down or deasserts the indicator to close the switches when powered on. Thus, switches effectively decouple the computer system from sideband signals in the expansion base during docking, undocking, and undocked operation. Because the switches are closed when the bus bridge is powered on, the sideband signals from the dock are fully connected to the computer system during docked operation.
The computer generally comprises a processor coupled to a North bridge logic device by a processor bus, a main memory coupled to the North bridge logic device via a memory bus, a primary expansion bus coupled to the North bridge logic device. The primary expansion bus preferably comprises a PCI bus, although other buses are contemplated, and couples to a variety of bus components, including the bus bridge used for docking. The computer system may further include a South bridge logic device coupling the primary expansion bus to one or more secondary expansion buses. Accordingly, a secondary bus may support various peripheral components, including a BIOS ROM, one or more disk drives, and an input/output controller capable of receiving keyboard and mouse input signals.
The expansion bus bridge used to couple the computer system and docking station generally comprises a bridge management logic device that facilitates bus transactions between the computer system and docking station. In a preferred embodiment, the expansion bus comprises a PCI bus, and the computer PCI bus and docking station PCI bus function as the primary and subordinate PCI buses, respectively. A plurality of switches couple the data, address, and control lines comprising the primary bus to the corresponding signals of the subordinate expansion bus. As governed by the ACPI protocol, the bus bridge includes a compatible power control unit capable of placing the bus bridge into various ACPI defined lower modes, including D0, D1 , D2, and D3 modes, and of placing the primary and subordinate uses into various ACPI power modes, including B0, B1, B2, and B3 modes. The ACPI control unit provides a switch control signal that opens the switches when the bus bridge transitions to the D3 mode and closes the switches when the bus bridge transitions to the D0 mode. Hence, the switches decouple the primary bus from the subordinate bus when bus bridge occupies the D3 mode. The switches preferably comprises field effect transistor (FET) switches.
The computer system includes a docking connector for coupling to the docking station, and the docking connector provides a xe2x80x9cdockedxe2x80x9d signal the bus bridge to indicate that the computer system has docked with the expansion base. While undocked, the computer""s operating system keeps the bus bridge in the D3, or xe2x80x9coff,xe2x80x9d mode. Accordingly, the bus bridge powers down the interface to the subordinate bus by placing the subordinate bus in the B3, or xe2x80x9coff,xe2x80x9d mode. As explained above, the switches in the bridge decouple the primary and subordinate buses during the D3 mode so that the computer system can safely remain powered and operational when docking.
In addition to the switches that decouple the primary and subordinate buses, the computer system includes an additional bank of switches for decoupling sideband signals that run between the computer and expansion base. The bus bridge provides the switch control signal to the bank of switches, so that the bank of switches open to decouple the sideband signals when the bus bridge occupies the D3 mode. Accordingly, the computer sideband signals and expansion base sideband signals can couple safely while the bridge occupies the D3 mode.
After docking, the expansion base asserts the xe2x80x9cdockedxe2x80x9d signal to the computer. In response, the ACPI control unit transmits a PME xe2x80x9cdockedxe2x80x9d interrupt to the operating system, which then places the bus bridge in the D0, or filly powered, mode. The bus bridge deasserts the switch control signal when in the D0 mode, closing the switches that couple the expansion bus and sideband signals, and places the subordinate expansion bus into the B0, or fully powered, mode. The computer is then fully docked and can access docking station resources immediately.